package com.hongyi.controller;

import com.hongyi.common.Result;
import com.hongyi.pojo.Person;
import com.hongyi.service.PersonService;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author hongyi
 * @date 2023/11/22 15:59
 */

/**
 * @RequestMapping 请求映射注解、 访问路径的名字。
 * restful 开发风格：一种开发中的编码规范和标准，前后端端人员通常按照这个规范来进行开发
 * 添加的请求 post请求
 * 修改的请求 update请求
 * 删除的请求 delete请求
 * 查询的请求 get请求
 *
 * @CrossOrigin // 跨域注解: 前后台分离开发模式，后台独立开发独立部署
 * 前台独立开发独立部署
 *
 * @RequestBody注解：把JSON数据自动转换为Java对象的注解 前台转后台
 *
 * @ResponseBody注解: 把Java对象转换为JSON数据后台传到前台
 */
@RestController
@RequestMapping("/person")
/*@CrossOrigin // 跨域注解*/
@MapperScan("com.hongyi.mapper")
public class PersonController {

    @Autowired
    private PersonService personService;

    @RequestMapping("/m0")
    public String m0() {
        return "接收任何请求数据类型";
    }

    /*@PostMapping("/m1")
    public String m1() {
        return "post请求 添加";
    }*/

    @PostMapping("/m1") // 后台拿数据
    public String m1(@RequestBody Person person) {
        System.out.println(person);
        return "post请求 添加";
    }

  /*  @PutMapping("/m2")
    public String m2(){
        return "update请求: 修改";
    }*/
  @PutMapping("/m2")
  public String m2(@RequestBody Person person){
      System.out.println(person);
      return "update请求: 修改";
  }

   /* @DeleteMapping("/m3")
    public String m3() {
        return "dalete请求: 删除";
    }*/

    @DeleteMapping("/m3")
    public String m3(Person person) {
        System.out.println(person);
        return "dalete请求: 删除";
    }

  /*  @GetMapping("/m4")
    public Person m4(){
        Person person = new Person();
        person.setName("hongyi");
        person.setAge(18);
        return person;
    }*/

    @GetMapping("/m4")
    public Person m4(Person p){
        System.out.println(p);
        Person person = new Person();
        person.setName("hongyi");
        return person;
    }

    @GetMapping("/PersonList")
    public Result<List<Person>> m5(){
        List<Person> list = personService.findALl();
        return Result.success(list);
    }
}
